/**  
* @Title: UserService.java
* @version V1.0  
*/ 
package com.hjb.service.user;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.hjb.service.domain.Member;
import com.hjb.service.domain.RebateDetail;

/**
* @ClassName: UserService
* @Description: TODO(个人中心)
* @author <a href="mailto:125671254@qq.com">Pan Xinwen</a>
* @date 2017年5月5日 下午6:25:06
*/
public interface UserService {
	
	/**
	 * 获取用户信息
	* @Title: getUserInfo
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param openId
	* @param @return    设定文件
	* @return List<Member>    返回类型
	* @throws
	 */
	public Member getUserInfo(String openId);

	/**
	 * 创建用户
	* @Title: createUser
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param member    设定文件
	* @return void    返回类型
	* @throws
	 */
	public void createUser(Member member);

	/**
	 * 从微信获取用户信息
	* @Title: getUserFromWx
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @return    设定文件
	* @return String    返回类型
	* @throws
	 */
	public String getUserFromWx(String userId);

	/**
	 * 更新用户token
	* @Title: updateToken
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param member    设定文件
	* @return void    返回类型
	* @throws
	 */
	public void updateToken(Member member);

	/**
	 * 补全个人信息
	* @Title: supplement
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param request
	* @param @return    设定文件
	* @return int    返回类型
	* @throws
	 */
	public int supplement(HttpServletRequest request);

	/**
	 * 通过推荐码获取用户信息
	* @Title: getUserbyInviteCode
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param inviteCode
	* @param @return    设定文件
	* @return List<Member>    返回类型
	* @throws
	 */
	public List<Member> getUserbyInviteCode(String inviteCode);

	/**
	 * 根据openid查询用户
	* @Title: getUserInfoByOpendId
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param string
	* @param @return    设定文件
	* @return List<Member>    返回类型
	* @throws
	 */
	public List<Member> getUserInfoByOpendId(String string);

	/**
	 * 查询用户返利信息
	* @Title: getInterest
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param string
	* @param @return    设定文件
	* @return RebateDetail    返回类型
	* @throws
	 */
	public List<Map<String,Object>> getInterest(String userId);

	/**
	 *查询返利总金额
	* @Title: getInterestCount
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param string
	* @param @return    设定文件
	* @return int    返回类型
	* @throws
	 */
	public String getInterestCount(String userId);
	 
	
}
